package samfeng.erp.product.attribute.dal.mysql;

import java.util.*;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import org.apache.ibatis.annotations.Mapper;
import samfeng.erp.product.attribute.controller.admin.vo.AttributeExportReqVO;
import samfeng.erp.product.attribute.controller.admin.vo.AttributePageReqVO;
import samfeng.erp.product.attribute.dal.dataobject.AttributeDO;

/**
 * 产品属性 Mapper
 *
 * @author 芋道源码
 */
@Mapper
public interface AttributeMapper extends BaseMapperX<AttributeDO> {

    default PageResult<AttributeDO> selectPage(AttributePageReqVO reqVO) {
        return selectPage(reqVO, new LambdaQueryWrapperX<AttributeDO>()
                .betweenIfPresent(AttributeDO::getCreateTime, reqVO.getCreateTime())
                .likeIfPresent(AttributeDO::getName, reqVO.getName())
                .eqIfPresent(AttributeDO::getAttributeDescription, reqVO.getAttributeDescription())
                .eqIfPresent(AttributeDO::getAttributePrice, reqVO.getAttributePrice())
                .eqIfPresent(AttributeDO::getProductId, reqVO.getProductId())
                .orderByDesc(AttributeDO::getId));
    }

    default List<AttributeDO> selectList(AttributeExportReqVO reqVO) {
        return selectList(new LambdaQueryWrapperX<AttributeDO>()
                .betweenIfPresent(AttributeDO::getCreateTime, reqVO.getCreateTime())
                .likeIfPresent(AttributeDO::getName, reqVO.getName())
                .eqIfPresent(AttributeDO::getAttributeDescription, reqVO.getAttributeDescription())
                .eqIfPresent(AttributeDO::getAttributePrice, reqVO.getAttributePrice())
                .eqIfPresent(AttributeDO::getProductId, reqVO.getProductId())
                .orderByDesc(AttributeDO::getId));
    }

}
